# Первый вызов: используем список по умолчанию list1 = extend_list(10) # Второй вызов: передаём новый пустой список list2 = extend_list(123, []) # Третий вызов: снова используем список по умолчанию list3 = extend_list('a')
Механика дефолтного списка В сигнатуре функции lst=[] создаётся один список при определении функции и затем переиспользуется во всех вызовах, где lst не передан.
Первый вызов
```python list1 = extend_list(10) lst не передан → берётся дефолтный список.
Добавляем 10. ⇒ list1 становится [10]. ```p Второй вызов
```python list2 = extend_list(123, [])```
Передаём новый пустой список [].
В него добавляется 123. ⇒ list2 становится [123].
Третий вызов
```python list3 = extend_list('a')```
Опять не передан lst → используется тот же дефолтный список, куда уже был добавлен 10.
Добавляем 'a'. ⇒ дефолтный список становится [10, 'a'], и list3 тоже ссылается на [10, 'a'].
# Первый вызов: используем список по умолчанию list1 = extend_list(10) # Второй вызов: передаём новый пустой список list2 = extend_list(123, []) # Третий вызов: снова используем список по умолчанию list3 = extend_list('a')
Механика дефолтного списка В сигнатуре функции lst=[] создаётся один список при определении функции и затем переиспользуется во всех вызовах, где lst не передан.
Первый вызов
```python list1 = extend_list(10) lst не передан → берётся дефолтный список.
Добавляем 10. ⇒ list1 становится [10]. ```p Второй вызов
```python list2 = extend_list(123, [])```
Передаём новый пустой список [].
В него добавляется 123. ⇒ list2 становится [123].
Третий вызов
```python list3 = extend_list('a')```
Опять не передан lst → используется тот же дефолтный список, куда уже был добавлен 10.
Добавляем 'a'. ⇒ дефолтный список становится [10, 'a'], и list3 тоже ссылается на [10, 'a'].